// any类型
console.log("-----any类型-----")
let a:any=1;
a="a"
console.log(a.toUpperCase())

// unknown类型
console.log("-----unknown类型-----")
let u:unknown=1
u="u"
if(typeof u=="string"){
    console.log(u.toUpperCase())
}

// never类型
// console.log("-----never类型-----")
let n:string & number
function sub(a:number,b:number):void{
    throw Error;
}

// void类型(空且非null)
console.log("-----void类型-----")
function f():void{
    console.log("function")
}
console.log(f())
let v:void
console.log(v)

// undefined类型
console.log("-----undefined类型-----")
let ud:undefined
console.log(ud)

// as(断言)
/*let test = document.getElementById("test") as HTMLElement;
if(test){
    test.innerHTML="<h1>test!!</h1>"
}*/

// 泛型
console.log("-----泛型-----")
function FX<T>(input:T):void{
    console.log(input)
}
FX<string>("hxd的爱情故事")

interface itFs<T>{
    id:T,
    name:string
}
let itFs_:itFs<number>={
    id:1,
    name:"鱻"
}